Draconis: Rethinking the Storage Stack

نویسنده

  • Jialin Li
چکیده

High performance storage systems like file systems, databases and persistent key value stores have very high storage I/O requirements. To maximize the efficiency of disk I/O, these systems usually make certain assumptions about the performance characteristics of the underlying storage medium, and design their disk read/write patterns accordingly. Some of the common assumptions include: sequential accesses are faster than random accesses, minimum read/write size should be a sector (512 bytes), batching writes into a large chunk is more efficient than writing small pieces, etc. Most of these assumptions are based on characteristics of a spinning disk, and therefore usually give applications efficient storage I/O when actually running on spinning disks. However, newer storage technologies like NAND SSDs, phase change memory and memristors all have very different performance characteristics from spinning disks. For example, SSDs do not have moving mechanical parts and therefore do not incur the extra seek penalty when accessing random addresses; the minimum read/write size is an SSD page size, which is typically 4KB; pages need to be erased before writing new content, causing in place updates to be very costly. Not surprisingly, applications written for spinning disks will not have the optimal performance on these newer storage technologies. To make the issue more problematic, different products of the same technology may have very different performance properties. SSDs for instance have different Flash Translation Layers (FTLs), and depends on the translation scheme, random writes can be much slower or equally fast as sequential writes. As a result, applications optimized for one SSD may have much worse performance on another SSD. The problem involves more than just the application layer. Operating systems’ storage I/O subsystem are also designed around a slow spinning disk: the disk interface only has simple sector read/write, I/O scheduling and buffer cache design optimize for sequential accesses and batching, etc. Even when applications make the correct assumptions, the operating system may totally disturb the disk access pattern, leads to non-optimal performance. With applications, operating systems, file systems, drivers, disk controllers and disk hardware all optimizing with only local information, it becomes extremely difficult for the application to have any end to end storage performance guarantees. This project thus aims to revisit storage system design across the stack. The goal of the project is twofold. Firstly, understand the inefficiencies caused by application’s wrong assumptions about the storage hardware and by the interference from multiple storage layers. This will involve measurements of several storage applications on different storage technologies (spinning disks and SSDs) and performance analysis against raw hardware capabilities. Secondly, base on the observations from the measurement study, propose a new storage stack design that optimizes applications’ I/O performance across different storage hardware. This may involve redesign of the OS I/O subsystem, storage API, disk driver/controller or the application.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

42 Rethinking the File System Design on Flash-based Storage

Flash memory is gaining great popularity in both embedded and enterprise systems. Compared to legacy hard drives, flash devices get rid of mechanical components and significantly improve performance. However, flash memory is not merely a faster storage media, and its characteristics provide opportunities of new storage system designs. In this paper, we summarize disruptive techniques on flash s...

متن کامل

Rethinking Network Stack Design with Memory Snapshots

Hardware virtualization is a core operating system feature. Network devices, in particular, must be shared while providing high I/O performance. By redesigning the network stack on a novel memory system that supports snapshot isolation, the operating system can effectively share network resources through the familiar socket API, enable zero-copy, reduce memory allocations and simplify driver co...

متن کامل

Rethinking the design and implementation of the i/o software stack for high-performance computing

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

متن کامل

Fingerprint analysis of Resina Draconis by ultra-performance liquid chromatography

BACKGROUND Resina Draconis, a bright red resin derived from Dracaena cochinchinensis, is a traditional medicine used in China. To improve its quality control approach, an ultra-performance liquid chromatography (UPLC) fingerprint method was developed for rapidly evaluating the quality of Resina Draconis. METHODS The precision, repeatability and stability of the proposed UPLC method were valid...

متن کامل

Supporting and Exploiting Heterogeneity in the Storage Stack

With the widespread adoption of NAND-flash-based SSDs as a primary storage medium, heterogeneity in storage installations has become a norm rather than an exception. In this paper, we argue that the compatibility-driven traditional storage stack is fundamentally flawed and incapable of supporting and exploiting heterogeneity properly. After highlighting major issues with the traditional stack, ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015